<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Objetivo_lst( $this );

	class Objetivo_lst extends Lst
	{
	function Objetivo_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function setLevel()
		{
			$this->aShowColumns = array_keys ( $this->aColumns );
			switch ( $this->getOptionView() )
			{
				case 'E':
				case 'C':
					$this->aShowColumns = array( 'Nombre', 'Proyecto' );
					break;
				case 'L':
					$this->aShowColumns = array( 'Nombre', 'Proyecto', 'Vto', 'Estado' );
					break;
			}
			if ( array_key_exists( 'ncProyecto' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Proyecto',$this->aShowColumns)]);
		}
	function initialize()
		{
			$this->setTitle ( "Objetivo" );
			$this->setSummary( "Esta tabla contiene los Objetivos" );
			$this->addColumnAction ( 'Proyecto', VER_PROYECTO,  'ncProyecto', 'cdProyecto' );
			$this->addColumnAction ( 'Nombre', VER_OBJETIVO,  'ncProyecto,ncObjetivo', 'cdObjetivo' );
			$this->addColumn ( 'Vto', '', 'dVencimiento');
			$this->addColumn ( 'Descripcion', 'cDescripcion');
			$this->addColumn ( 'Estado');
			$this->setColumnAction ( 'Estado', CONSULTAR_TAREAS, 'ncProyecto,ncObjetivo' );
			$this->addColumn ( 'Costo',  '');
			$this->addColumn ( 'Tiempo',  '');
			$this->oFecha = new dateObject();
			$this->oHoy = new DateObject();
			$this->oHoy->setToday();
		}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT Obj.ncProyecto, Obj.ncObjetivo, Obj.cdObjetivo, dObjetivo, Obj.dVencimiento, Pro.cdProyecto, Obj.cDescripcion
												FROM atObjetivo as Obj
												JOIN atProyecto as Pro
													ON Pro.ncProyecto = Obj.ncProyecto";
			// Arma el Filtro de la Consulta
				$oFiltro = $this->oModule->loadClass( 'Objetivo_frm' );
				$this->oWhere->addArray ( $oFiltro->getFilterdArray(), 'Obj' );
				if ( $this->getOptionView() == 'C' ) list( $dDesde, $dHasta ) = $this->getDateRange();
				if ( $dDesde && $dHasta ) $this->oWhere->add( "Obj.dVencimiento", "$dDesde,$dHasta", "between");
				return $cSql . $this->oWhere->make();
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'Costo':
				list(  $aRow['fiCostoSubTareas'] , $aRow['nqTiempoSubTareas'] ) = $this->oDatabase->getArray("SELECT SUM( fiCosto) , SUM( nqTiempo) FROM atTarea as Tar WHERE ncTareaPadre IS NULL AND ncProyecto = " . $aRow['ncProyecto'] . " AND ncObjetivo = " . $aRow['ncObjetivo'] );
				$cReturn =   $aRow['fiCostoSubTareas'];
				break;
			case 'Tiempo':
				$cReturn =   $aRow['nqTiempoSubTareas'];
				break;
			case 'KeyDay':
				$this->oFecha->setValue( $aRow['dVencimiento'] );
				$cReturn =  $this->oFecha->getValue();
				break;
			case 'Vto':
				if ( $aRow['dVencimiento'] == '' )
				{
					list( $dDesde, $dHasta ) = $this->oDatabase->getArray("SELECT MIN(dVencimiento), MAX(dVencimiento) FROM atTarea WHERE ncProyecto = " . $aRow['ncProyecto'] );
					$this->oFecha->setValue( $dDesde );
					$cReturn = $this->oFecha->getShortDescription(false);
					$this->oFecha->setValue( $dHasta );
					$cReturn .=  ' / '. $this->oFecha->getShortDescription(false);
				} else
				{
					$this->oFecha->setValue( $aRow['dVencimiento'] );
					$cReturn = $this->oFecha->getShortDescription(false);
				}
				break;
				default:
					return false;
				break;
		}
		return $cReturn;
	}
	function makeListActions()
		{
			$cParametroRegistro =  "ncProyecto=" . $this->aFields["ncProyecto"] ;
			$this->addListAction ( AGREGAR_OBJETIVO, $cParametroRegistro, 'I' , VENTANA_SECUNDARIA);
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncProyecto=" . $aRow["ncProyecto"] . "&amp;ncObjetivo=" . $aRow["ncObjetivo"] ;
			$this->addRowAction ( MODIFICAR_OBJETIVO, $cParametroRegistro , '', VENTANA_SECUNDARIA);
			$this->addRowAction ( ELIMINAR_OBJETIVO, $cParametroRegistro);
		}
	function makeComplex()
		{
			$oLst = $this->oModule->loadClass ( "tarea_lst" );
			$oLst->aFields['ncProyecto'] = $this->aFields['ncProyecto'];
			$oLst->aFields['ncObjetivo'] = $this->aFields['ncObjetivo'];
			$oLst->aFields['bSinSubtarea'] = 1;
			$oLst->setTitle("Tareas");
			$oLst->setNoPaging();
			$oLst->open();
			if ( $oLst->oRecordset->count() > 0 )
			{
				$oLst->makeTab();
			}
			$oLst = $this->oModule->loadClass ( "Proyecto_contacto_lst" );
			$oLst->aFields['ncProyecto'] = $this->aFields['ncProyecto'];
			$oLst->aFields['ncObjetivo'] = $this->aFields['ncObjetivo'];
			$oLst->setTitle("Contactos");
			$oLst->setNoPaging();
			$oLst->open();
			if ( $oLst->oRecordset->count() > 0 )
			{
				$oLst->makeDir();
			}
		}
	}
?>
